namespace AElf.Kernel.Infrastructure;

public interface IKeyValueStore<T>
    where T : IMessage<T>
{
    Task SetAsync(string key, T value);
    Task SetAllAsync(Dictionary<string, T> pipelineSet);
    Task<T> GetAsync(string key);
    Task RemoveAsync(string key);
    Task<bool> IsExistsAsync(string key);
    Task<List<T>> GetAllAsync(List<string> keys);
    Task RemoveAllAsync(List<string> keys);
}